In non-volatile memory systems, blocks of data stored in the memory are periodically garbage collected (i.e., compacted or consolidated) to reclaim a memory's storage capacity. In a typical garbage collection operation, valid data from one or more blocks are copied to another block. After the valid data are transferred, the original one or more blocks is erased to provide storage capacity. Currently, a write operation can trigger a memory system to perform a garbage collection operation. The host allows a fixed amount of time for the execution of the write operation and the garbage collection operation. For example, the Secure Digital protocol limits the amount of time to 250 milliseconds. A timeout error can result if the memory system exceeds this fixed amount of time in a write operation.
The sizes of memory blocks have been increasing due to increased capacity, higher parallelism, and die size scaling. Accordingly, execution of write operations and the performance of garbage collection operations are taking longer because more data are transferred. A garbage collection operation can therefore easily exceed the fixed amount of time allocated to the write operation. As a result, there is a need to prevent the timeout errors when the amount of time to perform a garbage collection operation exceeds the fixed amount of time.